﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BaiTu.UniqueIdGenerator;

namespace BaiTu.Domains
{
    /// <summary>
    /// 实体类的基类 所有实体的定义都必须继承该类
    /// </summary>
    public class BaseDomain
    {
        private string _id = null;
        /// <summary>
        /// 主键ID编号
        /// </summary>
        public string ID
        {
            get
            {
                if (string.IsNullOrWhiteSpace(_id))
                {
                    _id = IDGenerator.Next();
                }
                return _id;
            }
            set
            {
                _id = value;
            }
        }
        private DateTime _createTime = DateTime.Now;
        /// <summary>
        /// 记录创建时间
        /// </summary>
        public DateTime CreateTime
        {
            get { return _createTime; }
            set { _createTime = value; }
        }

        private DateTime _modifyTime = DateTime.Now;
        /// <summary>
        /// 记录修改时间
        /// </summary>
        public DateTime ModifyTime
        {
            get { return _modifyTime; }
            set { _modifyTime = value; }
        }

        /// <summary>
        /// 创建该条记录的编号
        /// </summary>
        public string CreateUserID { get; set; }
        /// <summary>
        /// 最后一次修改该条数据的用户编号
        /// </summary>
        public string ModifyUserID { get; set; }

        private bool? _isDelete = false;
        /// <summary>
        /// 表示是否真正的删除数据 还是做一个删除标记  如果为true  表示真正的删除 为false或null 表示只是做一个删除标记 当然只针对删除操作
        /// 默认是真正删除数据库记录 为true
        /// </summary>
        public bool? IsDelete
        {
            get
            {
                return _isDelete;
            }
            set
            {
                _isDelete = value;
            }
        }
    }
}
